interface Car {
    void assemble();
}

class BenzCar implements Car {
    
    public void assemble() {
        System.out.println("Assembling Benz Car");
    }
}

class BMWCar implements Car {

    public void assemble() {
        System.out.println("Assembling BMW Car");
    }
}

class AudiCar implements Car {

    public void assemble() {
        System.out.println("Assembling Audi Car");
    }
}

class CarFactory {
    public Car createCar(String type) {
        if (type.equalsIgnoreCase("Benz")) {
            return new BenzCar();
        } else if (type.equalsIgnoreCase("BMW")) {
            return new BMWCar();
        } else if (type.equalsIgnoreCase("Audi")) {
            return new AudiCar();
        } else {
            return null;
        }
    }
}

public class Main {
    public static void main(String[] args) {
        CarFactory carFactory = new CarFactory();

        Car BenzCar = carFactory.createCar("Benz");
        BenzCar.assemble();

        Car BMWCar = carFactory.createCar("BMW");
        BMWCar.assemble();

        Car AudiCar = carFactory.createCar("Audi");
        AudiCar.assemble();
    }
}